The present invention relates to digital communication techniques, more particularly to error detection coding of blocks of information in digital form, and still more particularly to techniques for providing higher levels of error detection coding in ways that are backwards compatible with techniques that provide lower levels of error detection coding.
In wireless and other communication systems, the data to be communicated is typically transmitted in bursts. This is, for example, the case for cellular systems built in accordance with either of the well-known GSM or IS-95 standards. This is also the case for systems that permit ad-hoc piconets to be established, such as those systems operating in accordance with BLUETOOTH™ technology, which operates in the unlicensed Industrial, Scientific and Medical (ISM) radio frequency band at 2.4 GHz. See, for example, J. C. Haartsen, “The Bluetooth radio system,” IEEE Personal Communications, vol. 7, No. 1, February 2000.
For all of these kinds of systems, coding is used to enhance the quality of the link. The general principles of such coding are well known, and are described in, for example, D. Bertsekas and R. Gallager, Data Networks, 2nd edition, Prentice-Hall, 1992. One can distinguish between two different kinds of coding, namely coding used for error correction and coding used for error detection. Often both of these types of coding are employed to optimize the performance of the system. FIG. 1 is a block diagram that illustrates a typical communications system in which both error detection and error correction coding are employed. First, on the transmitter side, the information bits to be sent are encoded for error detection 101. This step is typically achieved by adding so-called cyclic redundancy check (CRC) bits, although other types of error detection codes (e.g., parity bits) may alternatively be used. Then, the information bits and the CRC bits are encoded in a way that provides forward error correction (FEC) capability 103. The resultant bits are then transmitted over the channel 105.
On the receiver side of the system, the process is the reverse. First, the received bits are subjected to error correction decoding 107. This step attempts to correct bit errors that appeared in the received group of bits. Ideally, the error correction code is able to correct most of the errors in the received blocks, and in this case the use of the FEC code permits the number of retransmissions to be reduced significantly. However, the FEC code is not always capable of correcting all of the errors in the received blocks, so before the decoded codeword is accepted as correct, it is checked by means of the error detection processing 109 (e.g., a CRC decoder). This helps ensure that the decoded codeword does not contain any uncorrectable errors. In this way, the probability of accepting an erroneous decoded codeword can ideally be made sufficiently small.
A characteristic property of ad-hoc networks, such as those utilizing BLUETOOTH™ technology, is that interference is not under control. In fact, since an interfering device may very well be much closer to the receiver than the intended transmitter is, the signal-to-interference ratio (SIR) can be extremely small, for example −20 dB. Also, for systems operating in an unlicenced band such as the 2.4 GHz ISM band, the interferer can be a device with a significantly higher output power, such as a microwave oven. In such cases, the received SIR can be more than, for example, 20 dB from where the system is working properly.
For the small fraction of packets in an ad hoc system that are hit by interference, the error correcting code is virtually worthless. This, of course, means that the packet will not be correctly decoded. However, what is even worse is that unless the code used for error detection is powerful enough, the erroneous decoded packet might not be detected as erroneous but might instead be accepted as correct.
The simple explanation for this malfunction is that for relatively good channel conditions, the probability of falsely accepting a packet is very small due to the combined use of an error correcting code and an error detecting code. However, if the channel conditions become very poor, the probability of falsely accepting a packet will be determined by the properties of the error detecting code alone.
When a system is initially designed, it can be hard to determine how powerful the error detection coding needs to be. The reason for this is twofold. First, it can be difficult to determine what the channel conditions will be like. Second, it is almost impossible to know beforehand what kind of applications will be supported, and what kind of requirements these applications will place on the system. In any of these cases, it might be desirable to be able to enhance the error detecting capability after the system has been initially designed and put into practice. Making a change to enhance the error correcting/detecting capability of an existing system presents problems however, because existing receivers will typically be unable to accommodate a change in the format of the received information.
It is therefore desirable to provide methods and apparatuses to permit enhancement of error detecting capability in an already designed system. It is also desirable to allow for an application-dependent adaptive change in a system's error detection capability.